package com.byd.sealmanage.service;

import com.alibaba.fastjson.JSONObject;
import com.byd.sealmanage.modal.po.TbRole;
import com.byd.sealmanage.modal.po.TbToken;
import com.byd.sealmanage.modal.po.TbUser;
import org.springframework.http.ResponseEntity;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Map;
import java.util.Set;

public interface LoginService {

    /**
     * 获取当前登录用户信息
     * @param principal
     * @return
     */
    TbUser getUserByJobNumber(String principal);

    /**
     * 登录页面的账号密码验证
     * @param userName
     * @param password
     * @return
     */
    JSONObject checkLoginInfo(String userName, String password);

    /**
     * 生成token
     * @param userId
     * @return
     */
    String createToken(String userId,String comeType);

    /**
     * 查询token
     * @param token
     * @return
     */
    TbToken selectByToken(String token);

    /**
     * 查询角色对应的菜单集合
     * @param roles
     * @return
     */
    Map<String, Object> getMenus(Set<TbRole> roles);

    /**
     * 下载模板文件
     * @param fileAddress
     * @return
     */
    ResponseEntity<byte[]> downloadFile(String fileAddress, HttpServletRequest request) throws IOException;

    /**
     * 获取地区下拉框信息
     * @return
     */
    JSONObject getPlaceOptionService();

}
